package com.zzz.bookdemo.model;

/*
 * @author zzr
 * @date: 2025/09/26  21:56
 * @description:
 */

import lombok.Data;

@Data
public class Result<T> {
    private ResultStatus status;
    private String errorMessage;
    private T data; // data 表示之前接口（pageResult）返回的数据

    /**
     * 业务执行成功时候返回的方法
     * @param data
     * @return
     * @param <T>
     */
    public static <T> Result success(T data) {
        Result result = new Result();
        result.setStatus(ResultStatus.SUCCESS);
        result.setErrorMessage("");
        result.setData(data);

        return  result;
    }

    /**
     * 业务执行失败时候返回的方法
     * @param msg
     * @return
     * @param <T>
     */
    public static <T> Result fail(String msg) {
        Result result = new Result();
        result.setStatus(ResultStatus.FAIL);
        result.setErrorMessage(msg);
        result.setData("");

        return result;
    }

    /**
     * 业务执行失败时返回的方法
     * @return
     */
    public static Result unlogin() {
        Result result = new Result();
        result.setStatus(ResultStatus.UNLOGIN);
        result.setErrorMessage("用户未登录");
        result.setData(null);

        return result;
    }
}
